class dealObject {
    constructor () {
        super()
    }
}
class clone extends dealObject {
    /** 
        * cloneDeep 深度拷贝
        * @param object cloneDeep 需要拷贝的对象
    */
    cloneDeep(obj) {
        if(obj===null) return null
        if(typeof obj!=='object') return obj; //如果不是object直接返回
        if(obj instanceof RegExp){
            return new RegExp(obj) //如果是正则
        }
        if(obj instanceof Date){
            return new Date(obj) //如果是日期
        }
        if(obj instanceof Function){
            return new Function(obj) //如果是函数
        }
        let newObj=new obj.constructor  //既能克隆object 也能克隆实例
            for(let key in obj){
                if(obj.hasOwnProperty(key)){
                    newObj[key]=cloneDeep(obj[key])
                }
            }
            return newObj
    }
    /** 
        * cloneDeep 浅拷贝
        * @param object cloneDeep 需要拷贝的对象
    */
    simpleDeep(obj) { 
      return  Object.assign({},obj)
    }
}

export default dealObject